import { createSlice } from '@reduxjs/toolkit'
import axios from 'axios'
// 步骤2: 定义商品数据切片;
const shopSlice = createSlice({
    name: 'shop',
    initialState: {
        num: 100,
        goodsArr: [
            {
                id: 1,
                proname: 'iphone-watch',
                price: 8000
            },
            {
                id: 2,
                proname: 'BYD-插混',
                price: 170000
            }
        ],
        schoollist: []  // 学校列表
    },
    reducers: { //reducers都存放的是同步的方法
        addNum(state) {
            state.num++;
        },
        addgoods(state, action) {
            // console.log('action', action);
            // state.userinfo.age = state.userinfo.age + action.payload
            state.goodsArr.push(action.payload)
        },
        initSchoolList(state, action) {
            state.schoollist = action.payload
        }

    }
})

// 步骤3:从切片shopSlice 中导出修改改切片数据的两个方法
// 后面用来在页面中导入该如下方法修改数据
//  addNum 和 addgoods 都是同步修改数据
export const { addNum, addgoods, initSchoolList } = shopSlice.actions

// 定义异步方法去异步修改数据
// 思路: 先写一个异步的方法, 然后在异步的方法中调用同步方法去修改数据
// 定义异步的方法/任务
export const initschoollistAsync = (payload?: any): any => {
    return (dispatch: any) => {
        // 异步进行数据请求 
        axios.get('https://api.i-lynn.cn/college').then(res => {
            dispatch(initSchoolList(res.data.data.list1))
        })

    }
}


export default shopSlice